home *** CD-ROM | disk | FTP | other *** search
- title '256-character table for HGC Plus'
- name csls5
- page 55,132
-
- ;
- ; RAM-Loadable Character Sets for the IBM PC
- ; Listing 5
- ;
- ; Richard Wilton
- ; July 1986
- ;
-
- ; Notes:
- ; This program loads a 256-character definition table for use in
- ; alphanumeric video display modes. The program assumes
- ; that the proper video mode has already been established.
- ;
- ; The display is configured for 80 character columns and 43 rows.
- ;
- ; For Hercules Graphics Card Plus ONLY.
-
-
- cseg segment para public 'CODE'
-
- assume cs:cseg,ds:cseg
-
- org 100h ; initial program counter for .COM file
-
- label0:
- jmp label1 ; jump around character set table
- even
-
- ; definitions for 8 by 8 characters 00h through FFh, with 8 bytes padding
- ; between character definitions
- csdefs db 000h,000h,000h,000h,000h,000h,000h,000h ; 000h
- db 8 dup(0)
- db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; 001h
- db 8 dup(0)
- db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; 002h
- db 8 dup(0)
- db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; 003h
- db 8 dup(0)
- db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; 004h
- db 8 dup(0)
- db 038h,07Ch,038h,0FEh,0FEh,07Ch,038h,07Ch ; 005h
- db 8 dup(0)
- db 010h,010h,038h,07Ch,0FEh,07Ch,038h,07Ch ; 006h
- db 8 dup(0)
- db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; 007h
- db 8 dup(0)
- db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; 008h
- db 8 dup(0)
- db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; 009h
- db 8 dup(0)
- db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; 00Ah
- db 8 dup(0)
- db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; 00Bh
- db 8 dup(0)
- db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; 00Ch
- db 8 dup(0)
- db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; 00Dh
- db 8 dup(0)
- db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; 00Eh
- db 8 dup(0)
- db 099h,05Ah,03Ch,0E7h,0E7h,03Ch,05Ah,099h ; 00Fh
- db 8 dup(0)
- db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; 010h
- db 8 dup(0)
- db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; 011h
- db 8 dup(0)
- db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; 012h
- db 8 dup(0)
- db 066h,066h,066h,066h,066h,000h,066h,000h ; 013h
- db 8 dup(0)
- db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; 014h
- db 8 dup(0)
- db 03Eh,063h,038h,06Ch,06Ch,038h,0CCh,078h ; 015h
- db 8 dup(0)
- db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; 016h
- db 8 dup(0)
- db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; 017h
- db 8 dup(0)
- db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; 018h
- db 8 dup(0)
- db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; 019h
- db 8 dup(0)
- db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; 01Ah
- db 8 dup(0)
- db 000h,030h,060h,0FEh,060h,030h,000h,000h ; 01Bh
- db 8 dup(0)
- db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; 01Ch
- db 8 dup(0)
- db 000h,024h,066h,0FFh,066h,024h,000h,000h ; 01Dh
- db 8 dup(0)
- db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; 01Eh
- db 8 dup(0)
- db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; 01Fh
- db 8 dup(0)
- db 000h,000h,000h,000h,000h,000h,000h,000h ; 020h
- db 8 dup(0)
- db 030h,078h,078h,030h,030h,000h,030h,000h ; 021h
- db 8 dup(0)
- db 06Ch,06Ch,06Ch,000h,000h,000h,000h,000h ; 022h
- db 8 dup(0)
- db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; 023h
- db 8 dup(0)
- db 030h,07Ch,0C0h,078h,00Ch,0F8h,030h,000h ; 024h
- db 8 dup(0)
- db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; 025h
- db 8 dup(0)
- db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; 026h
- db 8 dup(0)
- db 060h,060h,0C0h,000h,000h,000h,000h,000h ; 027h
- db 8 dup(0)
- db 018h,030h,060h,060h,060h,030h,018h,000h ; 028h
- db 8 dup(0)
- db 060h,030h,018h,018h,018h,030h,060h,000h ; 029h
- db 8 dup(0)
- db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; 02Ah
- db 8 dup(0)
- db 000h,030h,030h,0FCh,030h,030h,000h,000h ; 02Bh
- db 8 dup(0)
- db 000h,000h,000h,000h,000h,030h,030h,060h ; 02Ch
- db 8 dup(0)
- db 000h,000h,000h,0FCh,000h,000h,000h,000h ; 02Dh
- db 8 dup(0)
- db 000h,000h,000h,000h,000h,030h,030h,000h ; 02Eh
- db 8 dup(0)
- db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; 02Fh
- db 8 dup(0)
- db 07Ch,0C6h,0CEh,0DEh,0F6h,0E6h,07Ch,000h ; 030h
- db 8 dup(0)
- db 030h,070h,030h,030h,030h,030h,0FCh,000h ; 031h
- db 8 dup(0)
- db 078h,0CCh,00Ch,038h,060h,0CCh,0FCh,000h ; 032h
- db 8 dup(0)
- db 078h,0CCh,00Ch,038h,00Ch,0CCh,078h,000h ; 033h
- db 8 dup(0)
- db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; 034h
- db 8 dup(0)
- db 0FCh,0C0h,0F8h,00Ch,00Ch,0CCh,078h,000h ; 035h
- db 8 dup(0)
- db 038h,060h,0C0h,0F8h,0CCh,0CCh,078h,000h ; 036h
- db 8 dup(0)
- db 0FCh,0CCh,00Ch,018h,030h,030h,030h,000h ; 037h
- db 8 dup(0)
- db 078h,0CCh,0CCh,078h,0CCh,0CCh,078h,000h ; 038h
- db 8 dup(0)
- db 078h,0CCh,0CCh,07Ch,00Ch,018h,070h,000h ; 039h
- db 8 dup(0)
- db 000h,030h,030h,000h,000h,030h,030h,000h ; 03Ah
- db 8 dup(0)
- db 000h,030h,030h,000h,000h,030h,030h,060h ; 03Bh
- db 8 dup(0)
- db 018h,030h,060h,0C0h,060h,030h,018h,000h ; 03Ch
- db 8 dup(0)
- db 000h,000h,0FCh,000h,000h,0FCh,000h,000h ; 03Dh
- db 8 dup(0)
- db 060h,030h,018h,00Ch,018h,030h,060h,000h ; 03Eh
- db 8 dup(0)
- db 078h,0CCh,00Ch,018h,030h,000h,030h,000h ; 03Fh
- db 8 dup(0)
- db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; 040h
- db 8 dup(0)
- db 030h,078h,0CCh,0CCh,0FCh,0CCh,0CCh,000h ; 041h
- db 8 dup(0)
- db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; 042h
- db 8 dup(0)
- db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; 043h
- db 8 dup(0)
- db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; 044h
- db 8 dup(0)
- db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; 045h
- db 8 dup(0)
- db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; 046h
- db 8 dup(0)
- db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Eh,000h ; 047h
- db 8 dup(0)
- db 0CCh,0CCh,0CCh,0FCh,0CCh,0CCh,0CCh,000h ; 048h
- db 8 dup(0)
- db 078h,030h,030h,030h,030h,030h,078h,000h ; 049h
- db 8 dup(0)
- db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; 04Ah
- db 8 dup(0)
- db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; 04Bh
- db 8 dup(0)
- db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; 04Ch
- db 8 dup(0)
- db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; 04Dh
- db 8 dup(0)
- db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; 04Eh
- db 8 dup(0)
- db 038h,06Ch,0C6h,0C6h,0C6h,06Ch,038h,000h ; 04Fh
- db 8 dup(0)
- db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; 050h
- db 8 dup(0)
- db 078h,0CCh,0CCh,0CCh,0DCh,078h,01Ch,000h ; 051h
- db 8 dup(0)
- db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; 052h
- db 8 dup(0)
- db 078h,0CCh,0E0h,070h,01Ch,0CCh,078h,000h ; 053h
- db 8 dup(0)
- db 0FCh,0B4h,030h,030h,030h,030h,078h,000h ; 054h
- db 8 dup(0)
- db 0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,0FCh,000h ; 055h
- db 8 dup(0)
- db 0CCh,0CCh,0CCh,0CCh,0CCh,078h,030h,000h ; 056h
- db 8 dup(0)
- db 0C6h,0C6h,0C6h,0D6h,0FEh,0EEh,0C6h,000h ; 057h
- db 8 dup(0)
- db 0C6h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h ; 058h
- db 8 dup(0)
- db 0CCh,0CCh,0CCh,078h,030h,030h,078h,000h ; 059h
- db 8 dup(0)
- db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; 05Ah
- db 8 dup(0)
- db 078h,060h,060h,060h,060h,060h,078h,000h ; 05Bh
- db 8 dup(0)
- db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; 05Ch
- db 8 dup(0)
- db 078h,018h,018h,018h,018h,018h,078h,000h ; 05Dh
- db 8 dup(0)
- db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; 05Eh
- db 8 dup(0)
- db 000h,000h,000h,000h,000h,000h,000h,0FFh ; 05Fh
- db 8 dup(0)
- db 030h,030h,018h,000h,000h,000h,000h,000h ; 060h
- db 8 dup(0)
- db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; 061h
- db 8 dup(0)
- db 0E0h,060h,060h,07Ch,066h,066h,0DCh,000h ; 062h
- db 8 dup(0)
- db 000h,000h,078h,0CCh,0C0h,0CCh,078h,000h ; 063h
- db 8 dup(0)
- db 01Ch,00Ch,00Ch,07Ch,0CCh,0CCh,076h,000h ; 064h
- db 8 dup(0)
- db 000h,000h,078h,0CCh,0FCh,0C0h,078h,000h ; 065h
- db 8 dup(0)
- db 038h,06Ch,060h,0F0h,060h,060h,0F0h,000h ; 066h
- db 8 dup(0)
- db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; 067h
- db 8 dup(0)
- db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; 068h
- db 8 dup(0)
- db 030h,000h,070h,030h,030h,030h,078h,000h ; 069h
- db 8 dup(0)
- db 00Ch,000h,00Ch,00Ch,00Ch,0CCh,0CCh,078h ; 06Ah
- db 8 dup(0)
- db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; 06Bh
- db 8 dup(0)
- db 070h,030h,030h,030h,030h,030h,078h,000h ; 06Ch
- db 8 dup(0)
- db 000h,000h,0CCh,0FEh,0FEh,0D6h,0C6h,000h ; 06Dh
- db 8 dup(0)
- db 000h,000h,0F8h,0CCh,0CCh,0CCh,0CCh,000h ; 06Eh
- db 8 dup(0)
- db 000h,000h,078h,0CCh,0CCh,0CCh,078h,000h ; 06Fh
- db 8 dup(0)
- db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; 070h
- db 8 dup(0)
- db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; 071h
- db 8 dup(0)
- db 000h,000h,0DCh,076h,066h,060h,0F0h,000h ; 072h
- db 8 dup(0)
- db 000h,000h,07Ch,0C0h,078h,00Ch,0F8h,000h ; 073h
- db 8 dup(0)
- db 010h,030h,07Ch,030h,030h,034h,018h,000h ; 074h
- db 8 dup(0)
- db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; 075h
- db 8 dup(0)
- db 000h,000h,0CCh,0CCh,0CCh,078h,030h,000h ; 076h
- db 8 dup(0)
- db 000h,000h,0C6h,0D6h,0FEh,0FEh,06Ch,000h ; 077h
- db 8 dup(0)
- db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; 078h
- db 8 dup(0)
- db 000h,000h,0CCh,0CCh,0CCh,07Ch,00Ch,0F8h ; 079h
- db 8 dup(0)
- db 000h,000h,0FCh,098h,030h,064h,0FCh,000h ; 07Ah
- db 8 dup(0)
- db 01Ch,030h,030h,0E0h,030h,030h,01Ch,000h ; 07Bh
- db 8 dup(0)
- db 018h,018h,018h,000h,018h,018h,018h,000h ; 07Ch
- db 8 dup(0)
- db 0E0h,030h,030h,01Ch,030h,030h,0E0h,000h ; 07Dh
- db 8 dup(0)
- db 076h,0DCh,000h,000h,000h,000h,000h,000h ; 07Eh
- db 8 dup(0)
- db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; 07Fh
- db 8 dup(0)
- db 078h,0CCh,0C0h,0CCh,078h,018h,00Ch,078h ; 080h
- db 8 dup(0)
- db 000h,066h,000h,066h,066h,066h,03Fh,000h ; 081h
- db 8 dup(0)
- db 00Eh,000h,03Ch,066h,07Eh,060h,03Ch,000h ; 082h
- db 8 dup(0)
- db 07Eh,0C3h,03Ch,006h,03Eh,066h,03Fh,000h ; 083h
- db 8 dup(0)
- db 066h,000h,03Ch,006h,03Eh,066h,03Fh,000h ; 084h
- db 8 dup(0)
- db 070h,000h,03Ch,006h,03Eh,066h,03Fh,000h ; 085h
- db 8 dup(0)
- db 018h,018h,03Ch,006h,03Eh,066h,03Fh,000h ; 086h
- db 8 dup(0)
- db 000h,000h,03Ch,060h,060h,03Ch,006h,01Ch ; 087h
- db 8 dup(0)
- db 07Eh,0C3h,03Ch,066h,07Eh,060h,03Ch,000h ; 088h
- db 8 dup(0)
- db 066h,000h,03Ch,066h,07Eh,060h,03Ch,000h ; 089h
- db 8 dup(0)
- db 070h,000h,03Ch,066h,07Eh,060h,03Ch,000h ; 08Ah
- db 8 dup(0)
- db 066h,000h,038h,018h,018h,018h,03Ch,000h ; 08Bh
- db 8 dup(0)
- db 07Ch,0C6h,038h,018h,018h,018h,03Ch,000h ; 08Ch
- db 8 dup(0)
- db 070h,000h,038h,018h,018h,018h,03Ch,000h ; 08Dh
- db 8 dup(0)
- db 063h,01Ch,036h,063h,07Fh,063h,063h,000h ; 08Eh
- db 8 dup(0)
- db 018h,018h,000h,03Ch,066h,07Eh,066h,000h ; 08Fh
- db 8 dup(0)
- db 00Eh,000h,07Eh,030h,03Ch,030h,07Eh,000h ; 090h
- db 8 dup(0)
- db 000h,000h,07Fh,00Ch,07Fh,0CCh,07Fh,000h ; 091h
- db 8 dup(0)
- db 01Fh,036h,066h,07Fh,066h,066h,067h,000h ; 092h
- db 8 dup(0)
- db 03Ch,066h,000h,03Ch,066h,066h,03Ch,000h ; 093h
- db 8 dup(0)
- db 000h,066h,000h,03Ch,066h,066h,03Ch,000h ; 094h
- db 8 dup(0)
- db 000h,070h,000h,03Ch,066h,066h,03Ch,000h ; 095h
- db 8 dup(0)
- db 03Ch,066h,000h,066h,066h,066h,03Fh,000h ; 096h
- db 8 dup(0)
- db 000h,070h,000h,066h,066h,066h,03Fh,000h ; 097h
- db 8 dup(0)
- db 000h,066h,000h,066h,066h,03Eh,006h,07Ch ; 098h
- db 8 dup(0)
- db 0C3h,018h,03Ch,066h,066h,03Ch,018h,000h ; 099h
- db 8 dup(0)
- db 066h,000h,066h,066h,066h,066h,03Ch,000h ; 09Ah
- db 8 dup(0)
- db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; 09Bh
- db 8 dup(0)
- db 01Ch,036h,032h,078h,030h,073h,07Eh,000h ; 09Ch
- db 8 dup(0)
- db 066h,066h,03Ch,07Eh,018h,07Eh,018h,018h ; 09Dh
- db 8 dup(0)
- db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; 09Eh
- db 8 dup(0)
- db 00Eh,01Bh,018h,03Ch,018h,018h,0D8h,070h ; 09Fh
- db 8 dup(0)
- db 00Eh,000h,03Ch,006h,03Eh,066h,03Fh,000h ; 0A0h
- db 8 dup(0)
- db 01Ch,000h,038h,018h,018h,018h,03Ch,000h ; 0A1h
- db 8 dup(0)
- db 000h,00Eh,000h,03Ch,066h,066h,03Ch,000h ; 0A2h
- db 8 dup(0)
- db 000h,00Eh,000h,066h,066h,066h,03Fh,000h ; 0A3h
- db 8 dup(0)
- db 000h,07Ch,000h,07Ch,066h,066h,066h,000h ; 0A4h
- db 8 dup(0)
- db 07Eh,000h,066h,076h,07Eh,06Eh,066h,000h ; 0A5h
- db 8 dup(0)
- db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; 0A6h
- db 8 dup(0)
- db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; 0A7h
- db 8 dup(0)
- db 018h,000h,018h,030h,060h,066h,03Ch,000h ; 0A8h
- db 8 dup(0)
- db 000h,000h,000h,07Eh,060h,060h,000h,000h ; 0A9h
- db 8 dup(0)
- db 000h,000h,000h,07Eh,006h,006h,000h,000h ; 0AAh
- db 8 dup(0)
- db 0C3h,0C6h,0CCh,0DEh,033h,066h,0CCh,00Fh ; 0ABh
- db 8 dup(0)
- db 0C3h,0C6h,0CCh,0DBh,037h,06Fh,0CFh,003h ; 0ACh
- db 8 dup(0)
- db 018h,018h,000h,018h,018h,018h,018h,000h ; 0ADh
- db 8 dup(0)
- db 000h,033h,066h,0CCh,066h,033h,000h,000h ; 0AEh
- db 8 dup(0)
- db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; 0AFh
- db 8 dup(0)
- db 022h,088h,022h,088h,022h,088h,022h,088h ; 0B0h
- db 8 dup(0)
- db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; 0B1h
- db 8 dup(0)
- db 0DBh,077h,0DBh,0EEh,0DBh,077h,0DBh,0EEh ; 0B2h
- db 8 dup(0)
- db 018h,018h,018h,018h,018h,018h,018h,018h ; 0B3h
- db 8 dup(0)
- db 018h,018h,018h,018h,0F8h,018h,018h,018h ; 0B4h
- db 8 dup(0)
- db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; 0B5h
- db 8 dup(0)
- db 036h,036h,036h,036h,0F6h,036h,036h,036h ; 0B6h
- db 8 dup(0)
- db 000h,000h,000h,000h,0FEh,036h,036h,036h ; 0B7h
- db 8 dup(0)
- db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; 0B8h
- db 8 dup(0)
- db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; 0B9h
- db 8 dup(0)
- db 036h,036h,036h,036h,036h,036h,036h,036h ; 0BAh
- db 8 dup(0)
- db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; 0BBh
- db 8 dup(0)
- db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; 0BCh
- db 8 dup(0)
- db 036h,036h,036h,036h,0FEh,000h,000h,000h ; 0BDh
- db 8 dup(0)
- db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; 0BEh
- db 8 dup(0)
- db 000h,000h,000h,000h,0F8h,018h,018h,018h ; 0BFh
- db 8 dup(0)
- db 018h,018h,018h,018h,01Fh,000h,000h,000h ; 0C0h
- db 8 dup(0)
- db 018h,018h,018h,018h,0FFh,000h,000h,000h ; 0C1h
- db 8 dup(0)
- db 000h,000h,000h,000h,0FFh,018h,018h,018h ; 0C2h
- db 8 dup(0)
- db 018h,018h,018h,018h,01Fh,018h,018h,018h ; 0C3h
- db 8 dup(0)
- db 000h,000h,000h,000h,0FFh,000h,000h,000h ; 0C4h
- db 8 dup(0)
- db 018h,018h,018h,018h,0FFh,018h,018h,018h ; 0C5h
- db 8 dup(0)
- db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; 0C6h
- db 8 dup(0)
- db 036h,036h,036h,036h,037h,036h,036h,036h ; 0C7h
- db 8 dup(0)
- db 036h,036h,037h,030h,03Fh,000h,000h,000h ; 0C8h
- db 8 dup(0)
- db 000h,000h,03Fh,030h,037h,036h,036h,036h ; 0C9h
- db 8 dup(0)
- db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; 0CAh
- db 8 dup(0)
- db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; 0CBh
- db 8 dup(0)
- db 036h,036h,037h,030h,037h,036h,036h,036h ; 0CCh
- db 8 dup(0)
- db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; 0CDh
- db 8 dup(0)
- db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; 0CEh
- db 8 dup(0)
- db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; 0CFh
- db 8 dup(0)
- db 036h,036h,036h,036h,0FFh,000h,000h,000h ; 0D0h
- db 8 dup(0)
- db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; 0D1h
- db 8 dup(0)
- db 000h,000h,000h,000h,0FFh,036h,036h,036h ; 0D2h
- db 8 dup(0)
- db 036h,036h,036h,036h,03Fh,000h,000h,000h ; 0D3h
- db 8 dup(0)
- db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; 0D4h
- db 8 dup(0)
- db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; 0D5h
- db 8 dup(0)
- db 000h,000h,000h,000h,03Fh,036h,036h,036h ; 0D6h
- db 8 dup(0)
- db 036h,036h,036h,036h,0FFh,036h,036h,036h ; 0D7h
- db 8 dup(0)
- db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; 0D8h
- db 8 dup(0)
- db 018h,018h,018h,018h,0F8h,000h,000h,000h ; 0D9h
- db 8 dup(0)
- db 000h,000h,000h,000h,01Fh,018h,018h,018h ; 0DAh
- db 8 dup(0)
- db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; 0DBh
- db 8 dup(0)
- db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; 0DCh
- db 8 dup(0)
- db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; 0DDh
- db 8 dup(0)
- db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; 0DEh
- db 8 dup(0)
- db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; 0DFh
- db 8 dup(0)
- db 000h,000h,03Bh,06Eh,064h,06Eh,03Bh,000h ; 0E0h
- db 8 dup(0)
- db 000h,03Ch,066h,07Ch,066h,07Ch,060h,060h ; 0E1h
- db 8 dup(0)
- db 000h,07Eh,066h,060h,060h,060h,060h,000h ; 0E2h
- db 8 dup(0)
- db 000h,07Fh,036h,036h,036h,036h,036h,000h ; 0E3h
- db 8 dup(0)
- db 07Eh,066h,030h,018h,030h,066h,07Eh,000h ; 0E4h
- db 8 dup(0)
- db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; 0E5h
- db 8 dup(0)
- db 000h,033h,033h,033h,033h,03Eh,030h,060h ; 0E6h
- db 8 dup(0)
- db 000h,03Bh,06Eh,00Ch,00Ch,00Ch,00Ch,000h ; 0E7h
- db 8 dup(0)
- db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; 0E8h
- db 8 dup(0)
- db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; 0E9h
- db 8 dup(0)
- db 01Ch,036h,063h,063h,036h,036h,077h,000h ; 0EAh
- db 8 dup(0)
- db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; 0EBh
- db 8 dup(0)
- db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; 0ECh
- db 8 dup(0)
- db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; 0EDh
- db 8 dup(0)
- db 01Ch,060h,0C0h,0FCh,0C0h,060h,01Ch,000h ; 0EEh
- db 8 dup(0)
- db 03Ch,066h,066h,066h,066h,066h,066h,000h ; 0EFh
- db 8 dup(0)
- db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; 0F0h
- db 8 dup(0)
- db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; 0F1h
- db 8 dup(0)
- db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; 0F2h
- db 8 dup(0)
- db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; 0F3h
- db 8 dup(0)
- db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; 0F4h
- db 8 dup(0)
- db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; 0F5h
- db 8 dup(0)
- db 018h,018h,000h,07Eh,000h,018h,018h,000h ; 0F6h
- db 8 dup(0)
- db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; 0F7h
- db 8 dup(0)
- db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; 0F8h
- db 8 dup(0)
- db 000h,000h,000h,018h,018h,000h,000h,000h ; 0F9h
- db 8 dup(0)
- db 000h,000h,000h,000h,018h,000h,000h,000h ; 0FAh
- db 8 dup(0)
- db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; 0FBh
- db 8 dup(0)
- db 078h,06Ch,06Ch,06Ch,06Ch,000h,000h,000h ; 0FCh
- db 8 dup(0)
- db 070h,018h,030h,060h,078h,000h,000h,000h ; 0FDh
- db 8 dup(0)
- db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; 0FEh
- db 8 dup(0)
- db 000h,000h,000h,000h,000h,000h,000h,000h ; 0FFh
- db 8 dup(0)
-
-
- label1:
-
- ; set configuration switch on HGC Plus
- mov dx,3BFh ; i/o port address
- mov al,1 ; activate RAM from B000:0000
- out dx,al ; through B000:7FFF
-
- ; copy character definition table to B000:4000
- mov ax,0B000h
- mov es,ax
- mov di,4000h ; ES:DI := B000:4000
-
- push cs
- pop ds
- mov si,offset csdefs ; DS:SI -> our character def table
-
- mov cx,label1-csdefs ; CX := size of table in bytes
- rep movsb ; copy the table
-
- ; Program the CRT controller to display 43 lines of 8 by 8 characters.
- ; Characters are displayed in a 9x8 matrix for better appearance.
- ;
- mov dx,3B4h ; CRT controller register index port
-
- mov si,offset regs00_0D ; DS:SI -> start of table of register
- ; values
-
- mov cx,0Eh ; CX := loop counter
- xor ah,ah ; AH := 0 (initial CRT controller
- ; register number)
- label2: mov al,ah
- out dx,al ; store CRT controller index reg
-
- lodsb ; AL := data for CRT controller reg
- inc dx ; DX := 3B5h (CRT data reg port)
- out dx,al ; store data to CRT controller reg
- dec dx ; DX := 3B4h
-
- inc ah ; AH := next CRT controller index #
- loop label2
-
- mov al,14h ; xModeReg index number
- out dx,al
-
- lodsb
- inc dx
- out dx,al ; configure xModeReg for RAM character
- ; set and proper character width
-
- ; update BIOS RAM area in segment 40h
- mov ax,40h
- mov ds,ax
-
- mov word ptr ds:[4Ah],80 ; update CRT_COLS (80 columns)
- mov word ptr ds:[4Ch],1C00h ; update CRT_LEN (80 columns * 43 rows
- ; * 2 bytes/character, rounded up to
- ; even 1K boundary)
- ; exit to DOS
- mov ax,4C00h
- int 21h
-
-
- ; table of CRT controller register values
-
- regs00_0D db 61h,50h,52h,0Fh ; regs 0 - 3 (9 wide)
- db 2Dh,02h,2Bh,2Ch ; regs 4 - 7 (8 high)
- db 02h,07h,06h,07h ; regs 8 - 0Bh (scans/char,
- ; cursor location)
- db 00h,00h ; regs 0Ch - 0Dh (always zero)
-
- xModeReg db 01h ; "4K RamFont", 9 dot wide
- ; characters
-
- cseg ends
-
- end label0